home *** CD-ROM | disk | FTP | other *** search
- /* MKPNDIR -- updates ProNet Library index $VER: MKPNDIR 1.04
- ©1992 J L Noble Elven Systems Boulder Creek CA */
-
- /* Somewhat modified by Jeff Lindstrom, Prolific, Inc. */
-
- LibName = ''
-
- c0 = '' /* so the colors can be swapped easier */
- c1 = ''
- c2 = ''
- c3 = ''
- c4 = '' /* This is a background color on 4 color Workbench */
- c5 = ''
- c6 = ''
- c7 = ''
-
- ADDRESS COMMAND
-
- SIGNAL ON Break_C
-
- IF ~( EXISTS(PNDIR) & EXISTS(PNLIB) ) THEN
-
- DO
- SAY ''
- SAY "Can't find "c6"PNDIR"c1" and/or"c6" PNLIB"
- SAY ''
- EXIT
- END
-
- SAY ''
-
- /* Save the date so we can trick list into giving us correct dates */
-
- 'date >t:today'
- CALL OPEN('today','t:today','read')
- savdate = READLN('today')
- savdate = SUBWORD(savdate,2,1)
- CALL CLOSE('today')
- 'delete >nil: t:today'
-
- SAY
-
- OPTIONS PROMPT 'Enter Library to Update or 'c2'<Return>'c1' for ALL > '
- PULL LibName
-
- LibName = LEFT(UPPER(LibName),3)
- SAY ''
-
- SELECT
-
- WHEN (LibName = ' ') THEN LibName = 'ALL'
- WHEN (LibName = 'ANA') THEN LibName = 'Analog'
- WHEN (LibName = 'DIS') THEN LibName = 'Discrete'
- WHEN (LibName = 'ECL') THEN LibName = 'ECL'
- WHEN (LibName = 'MOS') THEN LibName = 'MOS'
- WHEN (LibName = 'MTT') THEN LibName = 'MTTL'
- WHEN (LibName = 'SCH') THEN LibName = 'Schem'
- WHEN (LibName = 'SYM') THEN LibName = 'Symbol'
- WHEN (LibName = 'TTL') THEN LibName = 'TTL'
- WHEN (LibName = 'USE') THEN LibName = 'User'
- WHEN (LibName = 'VLS') THEN LibName = 'VLSI'
-
- OTHERWISE
- DO
- SAY c6'Say What?'
- SAY ''
- EXIT
- END
- END
-
- IF (LibName = 'ALL')|(LibName = 'Analog') THEN CALL UpDIR(Analog)
- IF (LibName = 'ALL')|(LibName = 'Discrete') THEN CALL UpDIR(Discrete)
- IF (LibName = 'ALL')|(LibName = 'ECL') THEN CALL UpDIR(ECL)
- IF (LibName = 'ALL')|(LibName = 'MOS') THEN CALL UpDIR(MOS)
- IF (LibName = 'ALL')|(LibName = 'MTTL') THEN CALL UpDIR(MTTL)
- IF (LibName = 'ALL')|(LibName = 'Schem') THEN CALL UpDIR(Schem)
- IF (LibName = 'ALL')|(LibName = 'Symbol') THEN CALL UpDIR(Symbol)
- IF (LibName = 'ALL')|(LibName = 'TTL') THEN CALL UpDIR(TTL)
- IF (LibName = 'ALL')|(LibName = 'User') THEN CALL UpDIR(User)
- IF (LibName = 'ALL')|(LibName = 'VLSI') THEN CALL UpDIR(VLSI)
-
- SAY ''
- SAY c7'DONE'
- SAY ''
-
- EXIT
-
-
- UpDIR:
-
- DO
-
- arg indir
-
- SAY c5' 'indir'A'
-
- 'date 1-jan-29' /* cheat - set the date to jan 1, 2029 so we get good filedates */
- /* (note - change this line dec 31st 2028 :) */
-
- 'LIST TO t:foo PNLIB/'indir'/#? LFORMAT="%N %L %D"'
- 'LIST TO t:foosize t:foo LFORMAT="%L"'
- CALL OPEN('SIZE','t:foosize','read')
- size = READLN('SIZE')
- status = c5'Updated'
- CALL CLOSE('SIZE')
- IF ~(size = 'empty') THEN 'sort t:foo t:foo'
- ELSE status = c5'Empty'
-
- 'date 'savdate /* restore the date so the directory has today's date */
-
- IF OPEN('DIR','t:foo','read') THEN
- DO
- IF OPEN('OUT','t:bar','W') THEN
- DO WHILE ~(EOF('DIR'))
- list = READLN('DIR')
-
- IF ~(list='') THEN
- DO
-
- /* Omit the .M files in the PNLIB/Schem sub-directory */
- IF ~( (indir = 'SCHEM') & (INDEX(SUBWORD(list,1,1), ".M") > 0) ) THEN
- DO
- CALL WRITELN('OUT',SUBWORD(list,1,1)) /* file name */
- CALL WRITELN('OUT',LEFT(SUBWORD(list,2,1),7)) /* filesize - 7 char string */
- CALL WRITELN('OUT',SUBWORD(list,3,1)) /* file date */
- END
- END
- END
-
- CALL CLOSE('DIR')
- CALL CLOSE('OUT')
-
- 'copy t:bar PNDIR/'indir clone
- 'delete >nil: t:foo'
- 'delete >nil: t:bar'
- 'delete >nil: t:foosize'
- SAY 'C'c1'-- 'status''
-
- END
- END
-
- RETURN
-
-
-
-
- /* Hmmm ... wanna quit early, huh? */
-
- BREAK_C:
-
- 'date 'savdate /* make sure we're back in the present */
- SAY ' p' /* turn the cursor back on */
- SAY 'B'center(c7'<<'c1' User Abort Requested 'c7'>>',60)
- SAY ''
- SAY ''
-
- EXIT
-